A. Field of the Invention
The present invention relates generally to data communication and, more particularly, to systems and methods that predict fields in packets before the entire packets are received.
B. Description of Related Art
Conventional communication networks permit communication devices, such as personal computers, servers, laptops, personal digital assistants (PDAs), and other similar devices, to communicate with one another. Sometimes, communications over these networks are governed by a packetization protocol and a corresponding packet exchange protocol that specify what the communication devices on the network must and must not do under different specific circumstances. These protocols are specified under the relevant standards, as applicable to the domains in which the communication devices operate.
Packetization and packet exchange protocols usually require that the communication devices involved in a communication process store and respond to packets in separate steps that require allocations of memory to hold and process one or more packets. A conventional technique used by a communication device includes receiving a packet, storing it in local memory, and processing it only after complete reception of the packet. This technique results in increased delays due to the time consumed in storing and processing the packet in two distinct steps. The technique also places a demand for a large enough local memory that can store the entire packet and any corresponding control information.
Some communication devices, such as mini-computers, micro-controllers, and micro-computers, operate in environments where time delays due to storage and processing of packets are unacceptable and/or lack sufficient resources to store one or more packets or perform necessary networking protocol procedures. To communicate over a packetized communication network, these devices often must associate themselves as slave devices to one or more host computers that contain the resources to perform operations on behalf of the slave devices. For example, the host computers may perform the networking protocol procedures on behalf of the slave devices, transmit information to other devices on their behalf, and perform operations on the slave devices in response to requests by network devices with which the slave devices are communicating. Such arrangements can result in delays in the processing of the packets, lead to many practical difficulties, and increase the cost of connecting the devices to the communication network.
Further, any communication device connected to a communication network performs processes for responding to a received packet. Conventional processes dictate that a communication device respond to a packet only after complete reception of the packet. This leads to delays in the generation of responses, thereby, causing inefficiencies or, in some cases, unacceptable performance.
As a result, there exists a need for mechanisms that permit communication devices that lack sufficient resources to store one or more packets and/or perform necessary networking protocol procedures to connect directly and inexpensively to a communication network. Also, a need exists for mechanisms that permit a communication device to respond to a received packet more quickly than that permitted by conventional systems.